package com.qqt.csr.common.vo.req;

import com.qqt.csr.common.acl.auth.resp.AuthInfoDTO;
import com.qqt.csr.common.enums.DeviceTypeEnum;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author:
 * @date: 2024-07-04 10:54
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString
public class RequestHeader implements Serializable {
    private static final long serialVersionUID = 314572702833891332L;
    public final static String TOKEN = "token";
    public final static String TOKEN_INFO = "tokenInfo";
    public final static String CONTENT_TYPE = "Content-Type";
    public final static String ACCEPT_LANGUAGE = "Accept-Language";
    public final static String LANG = "lang";
    public final static String HEADER_INFO = "headerInfo";
    public final static String EXTRA_MAP = "extraMap";
    public final static String TENANT_ID = "Tenant-Id";

    public final static String SYS_CODE = "sysCode";
    public final static String USER_NAME = "userName";
    public final static String NICK_NAME = "nickName";
    public final static String USER_ID = "userId";
    public final static String HEAD_IMG_URL = "headImgUrl";
    public final static String ACCOUNT_ID = "accountId";
    public final static String JTI = "jti";
    public final static String EXPIRE = "expire";
    public final static String DEVICE_FLAG = "deviceFlag";
    public final static String DEVICE_TYPE = "deviceType";
    public final static String OS = "os";
    public final static String FROM = "from";
    public final static String VERSION = "version";
    public final static String AUTHORIZATION = "Authorization";
    public final static String ACCESS_TOKEN = "accessToken";
    public final static String SIGN = "sign";
    public final static String LONGITUDE = "longitude";
    public final static String LATITUDE = "latitude";

    /**
     * 系统编码
     */
    private String sysCode;
    /**
     * 语言
     */
    private String lang;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 用户昵称
     */
    private String nickName;
    /**
     * 用户id
     */
    private Long userId;

    /**
     * 租户id
     */
    private String tenantId;

    /**
     * 头像
     */
    private String headImgUrl;
    /**
     * 设备ID
     */
    private String deviceFlag;
    /**
     * 平台类型：IOS、ANDROID、HARMONY
     * {@link DeviceTypeEnum}
     */
    private Integer deviceType;
    /**
     * 系统版本
     */
    private String os;
    /**
     * 请求来源
     */
    private String from;
    /**
     * 客户端版本号
     */
    private String version;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * token
     */
    private String token;

    /**
     * 访客端accessToken
     */
    private String accessToken;

    /**
     * 当前登录用户的授权信息
     */
    private AuthInfoDTO authInfoDTO;

}
